#pragma once

#include <iostream>
#include <string>
#include <functional>
#include "log.hpp"

using namespace std ;

typedef function<int(int, int )> func_t ; 

typedef function<void(int, const string&, const uint16_t&, const string&)> fun_t_service ; // 网络服务 ？ ？ ？

class Task
{
//private:
public: 

    /*int _x ;
    int _y ;
    func_t _func;*/

    //分割

    int _service_sock;
    string _ip ;
    uint16_t _port ;
    fun_t_service _func2 ;

public:

    
    

    /*Task(int x , int y , func_t func)
        :_x(x)
        ,_y(y)
        ,_func(func)
    {

    }*/
    Task(){}


    Task(int servicesock, const string ip,  uint16_t port, fun_t_service service)
        :_service_sock(servicesock)
        ,_ip(ip)
        ,_port(port)
        ,_func2(service)
    {
       
    }

    


    void operator()(const string& threadName)
    {
        _func2(_service_sock, _ip, _port, threadName);
    }




    /*int operator()()
    {
        return _func(_x , _y);
    }*/

    /*void operator()(const string& name)  // 任务处理 
    {

        //任务处理 
        _func2(_service_sock, _ip, _port, name);
        //日志记录 
        logMessage(WARNING,"$s 处理完成 %d + %d = %d | %s | %d",name.c_str(), _x, _y, _func(_x,_y), __FILE__ ,__LINE__);
    }*/

};










